Query Performance Monitoring (Execution Plan, Query Store)

Microsoft Technologies - এমএস এসকিউএল সার্ভার (MS SQl Server) - Database Maintenance এবং Performance Tuning
207

Query performance monitoring হল SQL Server-এ কুয়েরি বা স্টেটমেন্টগুলির কার্যকারিতা বিশ্লেষণ এবং অপটিমাইজ করার প্রক্রিয়া। সঠিকভাবে কুয়েরি পরিচালনা না করা হলে সিস্টেমের পারফরম্যান্সের ওপর নেতিবাচক প্রভাব ফেলতে পারে। Execution Plan এবং Query Store হল দুটি শক্তিশালী টুল যা আপনাকে কুয়েরির কার্যকারিতা বিশ্লেষণ এবং উন্নত করার সুযোগ প্রদান করে।


1. Execution Plan

Execution Plan হল SQL Server দ্বারা কুয়েরি বা স্টেটমেন্টের কার্যকরী রূপরেখা, যা বর্ণনা করে কিভাবে একটি কুয়েরি ডেটাবেসে এক্সিকিউট হবে। এটি কার্যকরী স্টেপগুলো, অপারেটর এবং ডেটা প্রক্রিয়াকরণ পদ্ধতি দেখায়।

1.1. Execution Plan এর গুরুত্ব

Execution Plan দেখলে আপনি নিম্নলিখিত তথ্য পেতে পারেন:

  • Index Usage: কুয়েরি চলানোর সময় ইনডেক্স ব্যবহার হচ্ছে কি না।
  • Join Types: কুয়েরি চলানোর সময় কোন ধরনের join (Nested Loop, Merge Join, Hash Join) ব্যবহৃত হচ্ছে।
  • Scan vs Seek: কুয়েরি কোন টেবিল বা ইনডেক্সে স্ক্যান করছে নাকি সিক (Seek) করছে।
  • Expensive Operations: কুয়েরি তে কোন অপারেশন বেশি সময় নিচ্ছে বা বেশি রিসোর্স ব্যবহার করছে।
  • Missing Indexes: কোথায় ইনডেক্সের অভাব আছে এবং যেগুলি কুয়েরির কার্যকারিতা বাড়াতে পারে।

1.2. Execution Plan দেখার পদ্ধতি

SQL Server Management Studio (SSMS) এর মাধ্যমে Execution Plan দেখতে পারেন। SSMS-এ Execution Plan দেখতে নিম্নলিখিত পদ্ধতি অবলম্বন করতে পারেন:

  • Actual Execution Plan: কুয়েরি চালানোর পর Include Actual Execution Plan টিক চিহ্ন দিন এবং কুয়েরি রান করুন। এরপর Execution Plan প্যানেলটি দেখা যাবে।
  • Estimated Execution Plan: কুয়েরি চালানোর আগে Display Estimated Execution Plan বাটনটি ব্যবহার করুন।

Query Example:

-- Enable the Actual Execution Plan
SET STATISTICS IO ON;
SET STATISTICS TIME ON;
GO

SELECT * FROM Customers WHERE CustomerID = 'ALFKI';

এটি Execution Plan সম্পর্কে বিস্তারিত তথ্য দেখাবে, যেমন আই/ও (IO), সময় এবং অন্যান্য অপারেশনগুলির পরিসংখ্যান।

1.3. Execution Plan এর বিশ্লেষণ

Execution Plan বিশ্লেষণ করার সময় কিছু গুরুত্বপূর্ণ পয়েন্ট মনোযোগ দিতে হবে:

  • Cost: কুয়েরির মোট খরচ (সময়ের দিক থেকে) কত তা দেখা যায়।
  • Index Scans: কুয়েরির কার্যকারিতা খারাপ হতে পারে যদি ইনডেক্স সিক না করে, বরং ইনডেক্স স্ক্যান করে।
  • Nested Loops: যদি Nested Loop Join বেশি ব্যবহৃত হয়, তাহলে পারফরম্যান্সে সমস্যা হতে পারে, বিশেষ করে বড় ডেটা সেটের জন্য।
  • Hash Join: বড় ডেটা সেটে Hash Join এর ব্যবহার সাধারণত বড় পারফরম্যান্স সমস্যার কারণ হতে পারে।

2. Query Store

Query Store হল একটি ফিচার যা SQL Server 2016 সংস্করণ থেকে উপলব্ধ, এবং এটি কুয়েরি পারফরম্যান্স ট্র্যাক এবং ম্যানেজ করার জন্য ব্যবহৃত হয়। Query Store কুয়েরির এক্সিকিউশন হিষ্ট্রি এবং পারফরম্যান্স মেট্রিক্স রেকর্ড করে এবং সেগুলির উন্নতির জন্য আপনাকে বিশ্লেষণ করতে সাহায্য করে।

2.1. Query Store এর কার্যকারিতা

  • Query Tracking: Query Store আপনার কুয়েরিগুলোর এক্সিকিউশন ইতিহাস ট্র্যাক করে, যার মাধ্যমে আপনি জানতে পারবেন কোন কুয়েরি কত দ্রুত বা ধীরে চলে।
  • Plan Forcing: যদি একটি কুয়েরি একটি নির্দিষ্ট Execution Plan এর মাধ্যমে ভালো পারফরম্যান্স দেয়, তাহলে আপনি Query Store এর মাধ্যমে সেই Execution Plan টিকে "force" করতে পারেন।
  • Performance Analytics: Query Store আপনাকে কুয়েরি পারফরম্যান্স সম্পর্কিত বিভিন্ন মেট্রিক্স (যেমন CPU, IO, Duration) ট্র্যাক করতে সহায়তা করে।

2.2. Query Store কনফিগারেশন এবং ব্যবহার

Query Store সঠিকভাবে ব্যবহারের জন্য সেটআপ করা প্রয়োজন। SSMS এর মাধ্যমে Query Store সক্রিয় করতে হবে:

  1. Query Store সক্রিয় করা:

    • Query Store সক্রিয় করার জন্য ALTER DATABASE কমান্ড ব্যবহার করা হয়।
    ALTER DATABASE [YourDatabase] SET QUERY_STORE = ON;
    
  2. Query Store পরামিতি কনফিগারেশন: আপনি বিভিন্ন পরামিতি কনফিগার করতে পারেন যেমন:

    • Size Based Cleanup Mode: Query Store কত সময় ধরে ডেটা রাখবে।
    • Max Size: Query Store এর সর্বোচ্চ আকার কতো হতে পারে।
    ALTER DATABASE [YourDatabase]
    SET QUERY_STORE (OPERATION_MODE = READ_WRITE, MAX_STORAGE_SIZE_MB = 1000, CLEANUP_POLICY = AUTO);
    

2.3. Query Store এর সুবিধা

  • Historical Query Data: আপনি কুয়েরি পারফরম্যান্সের আগের সংস্করণ দেখতে পারেন এবং তার ওপর ভিত্তি করে অপটিমাইজেশনের সিদ্ধান্ত নিতে পারেন।
  • Plan Management: Query Store আপনাকে বিভিন্ন এক্সিকিউশন প্ল্যানের কার্যকারিতা তুলনা করতে সাহায্য করে।
  • Automatic Tuning: Query Store এর সাহায্যে SQL Server স্বয়ংক্রিয়ভাবে plan forcing বা plan correction করতে পারে যদি একটি কুয়েরি সমস্যা সৃষ্টি করে।

2.4. Query Store বিশ্লেষণ

Query Store এর ডেটা দেখতে SSMS ব্যবহার করতে পারেন:

  • Query Store Reports: SSMS-এ Query Store ট্যাব থেকে Reports দেখতে পারবেন, যেখানে পারফরম্যান্স সম্পর্কিত বিস্তারিত রিপোর্ট যেমন, Top Resource Consuming Queries, Regressed Queries, Queries with High Execution Counts ইত্যাদি পাওয়া যাবে।

3. Best Practices for Query Performance Monitoring

  • Use Execution Plan Analysis: কুয়েরি পারফরম্যান্সের প্রথম স্তর হিসেবে Execution Plan ব্যবহার করুন। এটি কুয়েরির প্রতিটি স্টেপ, অপারেটর এবং তাদের কার্যকারিতা বিশ্লেষণ করতে সাহায্য করবে।
  • Enable Query Store: Query Store সক্রিয় করে কুয়েরির এক্সিকিউশন ইতিহাস এবং প্ল্যান ট্র্যাক করুন, যাতে ভবিষ্যতে পারফরম্যান্স সম্পর্কিত সমস্যা সমাধান করা যায়।
  • Monitor Query Performance Over Time: Query Store ব্যবহার করে কুয়েরির পারফরম্যান্স ট্র্যাক করুন এবং প্রয়োজনে অটোমেটিক প্ল্যানিং সেটআপ করুন।
  • Optimize Queries Using Indexes: প্রয়োজনে কুয়েরি অপটিমাইজ করতে ইনডেক্স তৈরি করুন, বিশেষ করে সিক (Seek) অপারেশনের জন্য।
  • Regular Performance Audits: কুয়েরির পারফরম্যান্স নিয়মিত পর্যালোচনা করুন এবং Execution Plan বিশ্লেষণ করে সমস্যা চিহ্নিত করুন।

সারাংশ

Query Performance Monitoring হল SQL Server-এর জন্য একটি অত্যন্ত গুরুত্বপূর্ণ কাজ, যা কুয়েরির কার্যকারিতা বিশ্লেষণ এবং অপটিমাইজ করার জন্য Execution Plan এবং Query Store ব্যবহার করে করা হয়। Execution Plan কুয়েরির কার্যকরী বিশ্লেষণ করতে সাহায্য করে, যখন Query Store কুয়েরির ইতিহাস এবং পারফরম্যান্স সম্পর্কিত ডেটা রেকর্ড করে, যা ভবিষ্যতে সমস্যা সমাধানে সহায়ক হয়। Query Store এর মাধ্যমে কুয়েরির এক্সিকিউশন প্ল্যান ম্যানেজ এবং ফরসিং করা যেতে পারে, যা কুয়েরি পারফরম্যান্স উন্নত করতে সাহায্য করে।

Content added By
Promotion
NEW SATT AI এখন আপনাকে সাহায্য করতে পারে।

Are you sure to start over?

Loading...